import 'package:flutter/material.dart';
import 'package:get/get_navigation/get_navigation.dart';

class GridViewPage extends StatelessWidget {
  const GridViewPage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('GridView 所有属性示例')),
      body: GridView.builder(
        // =====================
        // 👇 布局行为
        // =====================

        // 内容滚动方向：垂直（默认），可设置为 Axis.horizontal
        scrollDirection: Axis.vertical,

        // 是否反向滚动
        reverse: false,

        // 控制器（用于滚动监听）
        controller: ScrollController(),

        // 是否根据内容自适应尺寸（常与 shrinkWrap 联用）
        primary: false,

        // 如果为 true，则 GridView 的大小会根据内容自动调整
        shrinkWrap: false,

        // 边距
        padding: const EdgeInsets.all(12.0),

        // 滚动物理效果（弹性/滑动/无）
        physics: const BouncingScrollPhysics(),

        // =====================
        // 👇 构建子项数量
        // =====================

        itemCount: 20, // 总共 20 个网格项

        // =====================
        // 👇 子项构建器
        // =====================
        itemBuilder: (context, index) {
          return Container(
            alignment: Alignment.center,
            decoration: BoxDecoration(
              color: Colors.teal[100 * ((index % 8) + 1)],
              borderRadius: BorderRadius.circular(12),
            ),
            child: TextButton(
              onPressed:(){
              },
          child: Text('123'),
            ),
          );
        },

        // =====================
        // 👇 网格布局规则
        // =====================
        gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
          crossAxisCount: 3, // 每行显示 3 个
          mainAxisSpacing: 10, // 主轴方向间距
          crossAxisSpacing: 10, // 横轴方向间距
          childAspectRatio: 1.0, // 子项宽高比：宽 / 高
        ),
        // 也可以换成 SliverGridDelegateWithMaxCrossAxisExtent：
        /*
        gridDelegate: const SliverGridDelegateWithMaxCrossAxisExtent(
          maxCrossAxisExtent: 150, // 每个格子的最大宽度
          mainAxisSpacing: 10,
          crossAxisSpacing: 10,
          childAspectRatio: 1.0,
        ),
        */
      ),
    );
  }
}
